3DGPL Version 1.0 -------------------- GRAPHICS BASE LIBRARY AND TUTORIAL ------------------------------------ FOR GAME PROGRAMMERS ---------------------- Copyright (c) 1995 Sergei Savchenko (savs@cs.mcgill.ca) Contents: --------- This package contains ascii files discussing following subjects: 1.txt: Hardware Interfaces: MS-DOS 16/32 bits; MS-WINDOWS 16/32 bits; X11; NeXTStep. 2.txt: 3D-transformations: rotations; perspective; fixed point math. 3.txt: Clipping: 2-D screen boundaries; 3-D volume. 4.txt: Rasterization: Lines; Ambient polygons; Shaded polygons; Textured polygons. It also contains C sources of a portable basis 3-D library compilant under MS-DOS(WATCOM-C,DJGPP,BORLAND-C),MS-WINDOWS, X-WINDOWS and NeXTStep, with the following featured: BASIC HARDWARE INTERFACING; 3D-TRANSFORMATIONS; 2D AND VOLUME CLIPPING; RENDERING OF AMBIENT, SHADED AND TEXTURED POLYGONS. Usage and distribution: ----------------------- PROVIDED TEXT AND SOURCE CODE CAN NOT BE USED FOR ANY COMMERCIAL PURPOSES WITHOUT AUTHORIZATION. BOTH CAN BE FREELY DISTRIBUTED ON THE CONDITION THAT NO FEE IS CHARGED AND THAT THE ORIGINAL CONTENTS IS PRESERVED (NO ADDITIONS OR OMISSIONS). SINCE THIS TEXT AND SOURCE CODE ARE PROVIDED FREE OF CHARGE THERE IS ABSOLUTELY NO WARRANTY OR CLAIM AS TO THEIR QUALITY OR FITNESS FOR ANY PARTICULAR PURPOSE. History... ---------- So, why did I do it? partly out of frustration with some 3-D books especially those for game programmers, partly guided by my own beliefs and experiences how software and educational texts are supposed to be written. The library's C code is made pretty much based on the conviction that things still may and should be made simple yet short and understandable, so hopefully is this text. There were few objectives I had when writing later: To avoid having unanswered questions including those of an as-an-exercise-to-the-reader kind; To try separate everything into preferably independent topics; and to, once again, keep things simple to the maximum possible extent. But in no way, what I finished with, is a complete description of all method available in 3D graphics, but it is to big extend an explanation of how the library's code is written, and a guide to, sometimes, pretty particular solutions, which I believe are valuable and suitable for programming of 3-D games. How to use the library? ----------------------- The library's code is organized in several directories: /CLIPPER /HARDWARE /TRANS /ENGINE /GRAPHICS /DEMO there's just one example source provided in the /DEMO directory together with few scripts which you might want to modify depending on the system and compiler you are using. You would also have to make sure particular hardware interface source is moved up into /HARDWARE directory from one of it's sub directories which are named after each supported system. Future... --------- By looking at the contents you have already noticed that covered is but a fraction of what is supposed to be covered. I may be tempted to continue only if there's sufficient enthusiasm and response to the present text. So if you are appreciative enough of my time and efforts please feel free proposing me co-authorship of a book, OR buying me new 20" monitor, OR red sports car, OR electing me to your company's board, OR SENDING ME FAT CHEQUE OR MONEY ORDER, OR just a post card. In any case, for any comments or inquires you may find me at: Sergei Savchenko 4750 Dupuis #302 Montreal PQ H3W-1N3 Canada (514)-284-4908 (514)-344-0061 savs@cs.mcgill.ca http:://www.cs.mcgill.ca/~savs * * *